self referential structs in rust